//
// Created by wangwanlong on 2024/11/1.
//

#ifndef MKAHYPAR_RATING_SCORE_POLICY_H
#define MKAHYPAR_RATING_SCORE_POLICY_H
#include "mkahypar/utils/typedef.h"
#include "mkahypar/utils/macros.h"
#include "mkahypar/utils/policy_registry.h"
namespace mkahypar{
  class HeavyEdgeScore final : public meta::PolicyBase {
  public:
    MKAHYPAR_ATTRIBUTE_ALWAYS_INLINE static inline RatingType score(const Hypergraph& hypergraph,
                                                                   const HyperedgeID he) {
      return static_cast<RatingType>(hypergraph.edgeWeight(he)) / (hypergraph.edgeSize(he) - 1);
    }
  };



//  using RatingScorePolicies = meta::Typelist<HeavyEdgeScore, EdgeFrequencyScore>;
}
#endif //MKAHYPAR_RATING_SCORE_POLICY_H
